#include "Usuario.h"
#include <jsoncpp/json.h>

Usuario::Usuario():
nombre(""), contrasena(""), maxNivelAlcanzado(1), puntaje(0)
{
}

Usuario::Usuario(const std::string& nombre, const std::string& contrasena):
nombre(nombre), contrasena(contrasena), maxNivelAlcanzado(1), puntaje(0)
{
}

const std::string& Usuario::getNombre() const
{
	return this->nombre;
}

void Usuario::setNombre(const std::string& nombre)
{
	this->nombre = nombre;
}

std::string Usuario::getContrasena() const
{
	return this->contrasena;
}

void Usuario::setContrasena(const std::string& contrasena)
{
	this->contrasena = contrasena;
}

Json::Value Usuario::getJson()
{
	Json::Value root;

	root["nombre"] = nombre;
	root["contrasena"] = contrasena;
	root["maxNivelAlcanzado"] = maxNivelAlcanzado;
	return root;
}

void Usuario::setJson(Json::Value& root)
{
	nombre = root["nombre"].asString();
	contrasena = root["contrasena"].asString();
	maxNivelAlcanzado = root["maxNivelAlcanzado"].asUInt();
}

unsigned Usuario::getMaxNivelAlcanzado() const
{
	return maxNivelAlcanzado;
}

void Usuario::setMaxNivelAlcanzado(const unsigned& nivel)
{
	maxNivelAlcanzado = nivel;
}

void Usuario::setPuntaje(const unsigned & puntaje)
{
	this->puntaje = puntaje;
}

unsigned Usuario::getPuntaje() const
{
	return puntaje;
}

void Usuario::operator=(const Usuario& usuario)
{
	this->nombre = usuario.nombre;
	this->contrasena = usuario.contrasena ;
	this->maxNivelAlcanzado = usuario.maxNivelAlcanzado;
	this->puntaje = usuario.puntaje;
}
